/**
 * 数字保留小数位
 * @param {*} num 
 * @param {*} digit 保留的位数，默认0
 * @param {*} method 进位方式
 */
export function carry(num, digit = 0, method = Math.round) {
	let f = parseFloat(num);
	return method(f * Math.pow(10, digit)) / Math.pow(10, digit)
}

/**
 * 数值使用英文单位缩写
 * @param {*} num 
 * @param {*} digit 保留小数
 * @param {*} method 
 * @returns 
 */
export function scientific(num, digit = 0, method = Math.round) {
	const units = ["", 'K', 'M', 'B', 'T', 'P', 'E', 'Z', 'Y', 'S', 'L', 'X', 'D'];
	const n = String(num);
	let length = n.indexOf('.')
	if (length == -1) {
		length = n.length;
	}
	let d = length / 3;
	const index = String(d).indexOf('.') == -1 ? d - 1 : Math.floor(d);
	return carry(num / Math.pow(1000, index), digit, method) + units[index]
}

export default {
	carry,
	scientific
}